#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tkinter as tk  # 使用Tkinter前需要先导入
from tkinter import *
from tkinter.filedialog import askopenfilename
from tkinter.messagebox import showinfo
from tkinter import filedialog
from go_print import print_pdf


# 第1步，实例化object，建立窗口window
window = tk.Tk()

# 第2步，给窗口的可视化起名字
window.title('PDF批量打印助手')

# 第3步，设定窗口的大小(长 * 宽)

sw = window.winfo_screenwidth()
# 得到屏幕宽度
sh = window.winfo_screenheight()
# 得到屏幕高度
ww = 500
wh = 300
x = (sw - ww) / 2                               #窗口居中
y = (sh - wh) / 2                               #窗口居中
window.geometry("%dx%d+%d+%d" % (ww, wh, x, y)) #窗口居中

#放置标签
#放置lable的方法有：1）l.pack(); 2)l.place();

#窗口元素
e2 = tk.Entry(window, show=None, font=('Arial', 10), width=50)  #路径文本框
e2.place(x=35,y=50) #路径文本框位置

global var
var = tk.StringVar()
var.set('已就绪，请选择文件夹')

l = tk.Label(window, textvariable=var, bg='grey', font=('Arial', 12), width=50, height=6,justify='center',wraplength=400)
l.place(x=20,y=100)

#程序

def fileopen():
    file_sql = filedialog.askdirectory()
    if file_sql:
        e2.delete(0,'end')  #清空文本
        e2.insert(0,file_sql)   #插入文本（路径）
        var.set('已选择文件夹，点击-开始打印-打印该文件夹下的所有文件')
def exit():
    if exit:
        window.quit()
def print_start():
    if print_start:
        file_sql=e2.get()
        print_pdf(file_sql)


#按钮
btn = Button(window, width=10, text='选择文件夹', font=("宋体", 10),command=fileopen) #'选择文件夹'按钮文本框
btn.place(x=405, y=46)  #'选择文件夹'按钮文本框位置
printbtn = Button(window, width=10, text='开始打印', font=("宋体", 10),command=print_start) #'选择文件夹'按钮文本框
printbtn.place(x=350, y=250)  #'开始打印'按钮文本框位置
exitbtn = Button(window, width=10, text='退出程序', font=("宋体", 10),command=exit) #'选择文件夹'按钮文本框
exitbtn.place(x=100, y=250)  #'退出程序'按钮文本框位置


# 第6步，主窗口循环显示
window.mainloop()
# 注意，loop因为是循环的意思，window.mainloop就会让window不断的刷新，如果没有mainloop,就是一个静态的window,传入进去的值就不会有循环，mainloop就相当于一个很大的while循环，有个while，每点击一次就会更新一次，所以我们必须要有循环
# 所有的窗口文件都必须有类似的mainloop函数，mainloop是窗口文件的关键的关键。

